continuations: continued and to be continued
https://fortee.jp/2025fp-matsuri/proposal/ea9fd8fc-4ae3-40c7-8ef5-1a8041e64606
https://nymphium.github.io/pdf/fp_matsuri_2025.html
radish-miyazaki.icon の知識では一部しか理解できなかった…
特に Algebraic Effect Handlers あたりは ??
Racket の call/cc は残りの計算全てを 捕捉 してしまう
呼び出したフォームで閉じているのでは無い
そのため、代わりに 限定継続 を使うと良い
限定継続は call/cc や モナド を実装でき、その逆も成り立つ
https://gyazo.com/cc5ce596086f1ce01ebe6508d423390d
継続渡しスタイル(CPS)を IR として採用する事例もある
SML、NJ、Scheme、OCaml、WebAssembly
https://gyazo.com/8cc0f4a9d11e657022e5ad9bb01a0518
メリット
関数を 第一級オブジェクト として扱う CPS は FPL と相性が良い
CPS では 束縛 が 単一代入 的であり、β 簡約 や η 簡約 などで多様な最適化が実装しやすい
手続き型言語 と 関数型言語 の制御の移譲(control transfers)の対応付け
https://gyazo.com/f95ac9c5d1206eea993d1ce1f643d3a2
Handling effects とはどのような 副作用(Effect)が起きたか、そしていつどのように再開するかを指す
いつどのように再開するか = 継続
モナド にも継続は現れる
https://gyazo.com/a8f55a998cbfb396d7fa870ae216d45f
Algebraic Effect Handlers ??
副作用のある計算モデルの新しい手法
モナド変換子 よりもモジュール化や 合成 が容易らしい
#関数型まつり_2025